﻿using System;
using System.Collections.Generic;

namespace FreshTexture.Interfaces
{
    /// <summary>
    ///     Interface IMyEntity
    /// </summary>
    public interface IMyEntity
    {
        /// <summary>
        ///     Gets or sets a value indicating whether this instance is saved.
        /// </summary>
        /// <value>
        ///     <c>true</c> if this instance is saved; otherwise, <c>false</c>.
        /// </value>
        bool IsSaved { get; set; }

        bool IsSelected { get; set; }

        /// <summary>
        ///     Gets or sets the face front.
        /// </summary>
        /// <value>The face front.</value>
        Uri FaceFront { get; set; }

        /// <summary>
        ///     Gets or sets the face left.
        /// </summary>
        /// <value>The face left.</value>
        Uri FaceLeft { get; set; }

        /// <summary>
        ///     Gets or sets the face right.
        /// </summary>
        /// <value>The face right.</value>
        Uri FaceRight { get; set; }

        /// <summary>
        ///     Gets or sets the face top.
        /// </summary>
        /// <value>The face top.</value>
        Uri FaceTop { get; set; }

        /// <summary>
        ///     Gets or sets the face bottom.
        /// </summary>
        /// <value>The face bottom.</value>
        Uri FaceBottom { get; set; }

        /// <summary>
        ///     Gets or sets the face back.
        /// </summary>
        /// <value>The face back.</value>
        Uri FaceBack { get; set; }

        /// <summary>
        ///     Gets or sets the TXT file.
        /// </summary>
        /// <value>The TXT file.</value>
        string TxtFile { get; set; }

        /// <summary>
        ///     typ modela bloku (np. drzwi, przycisk, block)
        /// </summary>
        string ModelType { get; set; }

        /// <summary>
        ///     Gets or sets a value indicating whether this <see cref="IMyEntity" /> is animated.
        /// </summary>
        /// <value>
        ///     <c>true</c> if animated; otherwise, <c>false</c>.
        /// </value>
        bool Animated { get; set; }

        /// <summary>
        ///     Gets or sets the animation key frames.
        /// </summary>
        /// <value>The animation key frames.</value>
        List<string> AnimationKeyFrames { get; set; }

        /// <summary>
        ///     Gets or sets the name of the archive.
        /// </summary>
        /// <value>The name of the archive.</value>
        string ArchiveName { get; set; }

        string BlockName { get; set; }
    }
}